--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/backend/test_rrc_part_room.py master (2bf00cb3) Text, 1.89 KB
T8b949e# SPDX-License-Identifier: 0BSD
T8b949e"""Regression test for leaving a connected RRC room.
Leaving a connected RRC room must drop it from the known-rooms list.
RRCHub.ordered_known_rooms() treats any room with an entry in
self.messages as "known", even if it was never joined. part_room()
(used for a connected hub) previously only discarded the room from
self.rooms, leaving its messages entry (and unread/member state)
behind, so the room kept reappearing in the sidebar after leaving it.
"""
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787rrcT7ee787.T7ee787manager Tff7b72import Te6edf3RRCHub
Tff7b72class T56d364FakeIdentityTb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3hash_bytesTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffhash Tff7b72= Te6edf3hash_bytes
Tff7b72class T56d364FakeManagerTb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffchanges Tff7b72= T79c0ff0
Tff7b72selfTff7b72.Td2a8ffidentity Tff7b72= Te6edf3FakeIdentityTb4b4b4(Ta5d6ffbTa5d6ff"Tffea00\x11Ta5d6ff" Tff7b72* T79c0ff16Tb4b4b4)
Tff7b72def Td2a8ff_notify_changeTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3hubTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffchanges Tff7b72+Tff7b72= T79c0ff1
Tff7b72def Td2a8ffsaveTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72def Td2a8ff_history_pathTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3hubTb4b4b4, Te6edf3roomTb4b4b4)Tb4b4b4:
Tff7b72return Ta5d6ff"Ta5d6ff"
Tff7b72def Td2a8ff_ensure_history_dirTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3hubTb4b4b4)Tb4b4b4:
Tff7b72pass
Te6edf3HUB_HASH Tff7b72= Tffa657bytesTb4b4b4(Tffa657rangeTb4b4b4(T79c0ff16Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8ffmake_hubTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3RRCHubTb4b4b4(Te6edf3FakeManagerTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3HUB_HASHTb4b4b4, Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffHubTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8fftest_part_room_removes_room_from_known_roomsTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3hub Tff7b72= Te6edf3make_hubTb4b4b4(Tb4b4b4)
Te6edf3hubTff7b72.Td2a8ffstatus Tff7b72= Te6edf3RRCHubTff7b72.Td2a8ffSTATUS_CONNECTED
Te6edf3hubTff7b72.Td2a8ffroomsTff7b72.Td2a8ffaddTb4b4b4(Ta5d6ff"Ta5d6fflobbyTa5d6ff"Tb4b4b4)
Te6edf3hubTff7b72.Td2a8ffmessagesTb4b4b4[Ta5d6ff"Ta5d6fflobbyTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3hubTff7b72.Td2a8ffunread_roomsTff7b72.Td2a8ffaddTb4b4b4(Ta5d6ff"Ta5d6fflobbyTa5d6ff"Tb4b4b4)
Te6edf3hubTff7b72.Td2a8ffunread_countsTb4b4b4[Ta5d6ff"Ta5d6fflobbyTa5d6ff"Tb4b4b4] Tff7b72= T79c0ff3
Te6edf3hubTff7b72.Td2a8ffmembersTb4b4b4[Ta5d6ff"Ta5d6fflobbyTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4{Ta5d6ffbTa5d6ff"Tffea00\x01Ta5d6ff" Tff7b72* T79c0ff16Tb4b4b4}
Tff7b72assert Ta5d6ff"Ta5d6fflobbyTa5d6ff" Tff7b72in Te6edf3hubTff7b72.Td2a8ffordered_known_roomsTb4b4b4(Tb4b4b4)
Te6edf3hubTff7b72.Td2a8ffpart_roomTb4b4b4(Ta5d6ff"Ta5d6fflobbyTa5d6ff"Tb4b4b4)
Tff7b72assert Ta5d6ff"Ta5d6fflobbyTa5d6ff" Tff7b72not Tff7b72in Te6edf3hubTff7b72.Td2a8ffordered_known_roomsTb4b4b4(Tb4b4b4)
Tff7b72assert Ta5d6ff"Ta5d6fflobbyTa5d6ff" Tff7b72not Tff7b72in Te6edf3hubTff7b72.Td2a8ffmessages
Tff7b72assert Ta5d6ff"Ta5d6fflobbyTa5d6ff" Tff7b72not Tff7b72in Te6edf3hubTff7b72.Td2a8ffunread_rooms
Tff7b72assert Ta5d6ff"Ta5d6fflobbyTa5d6ff" Tff7b72not Tff7b72in Te6edf3hubTff7b72.Td2a8ffunread_counts
Tff7b72assert Ta5d6ff"Ta5d6fflobbyTa5d6ff" Tff7b72not Tff7b72in Te6edf3hubTff7b72.Td2a8ffmembers
Tff7b72def Td2a8fftest_part_room_notifies_manager_of_changeTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3hub Tff7b72= Te6edf3make_hubTb4b4b4(Tb4b4b4)
Te6edf3hubTff7b72.Td2a8ffstatus Tff7b72= Te6edf3RRCHubTff7b72.Td2a8ffSTATUS_CONNECTED
Te6edf3hubTff7b72.Td2a8ffroomsTff7b72.Td2a8ffaddTb4b4b4(Ta5d6ff"Ta5d6ffgeneralTa5d6ff"Tb4b4b4)
Te6edf3hubTff7b72.Td2a8ffmessagesTb4b4b4[Ta5d6ff"Ta5d6ffgeneralTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3hubTff7b72.Td2a8ffpart_roomTb4b4b4(Ta5d6ff"Ta5d6ffgeneralTa5d6ff"Tb4b4b4)
Tff7b72assert Te6edf3hubTff7b72.Td2a8ffmanagerTff7b72.Td2a8ffchanges Tff7b72>Tff7b72= T79c0ff1
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────